package cn.ylz.ylmall.common.web;

/**
 * 业务状态码
 *
 * @author java@tedu.cn
 * @version 1.0
 */
public enum ServiceCode {

    /**
     * 操作成功
     */
    OK(20000),
    /**
     * 错误：请求参数格式错误
     */
    ERROR_BAD_REQUEST(40000),
    /**
     * 错误：未认证
     */
    ERROR_UNAUTHORIZED(40100),
    /**
     * 错误：未认证，因为被禁用
     */
    ERROR_UNAUTHORIZED_DISABLED(40101),
    /**
     * 错误：禁止访问，用于无权限
     */
    ERROR_FORBIDDEN(40300),
    /**
     * 错误：数据不存在
     */
    ERROR_NOT_FOUND(40400),
    /**
     * 错误：数据冲突
     */
    ERROR_CONFLICT(40900),
    /**
     * 错误：未知的插入数据失败
     */
    ERROR_INSERT(50000),
    /**
     * 错误：未知的删除数据失败
     */
    ERROR_DELETE(50100),
    /**
     * 错误：未知的修改数据失败
     */
    ERROR_UPDATE(50200),
    /**
     * 错误：JWT已过期
     */
    ERR_JWT_EXPIRED(60000),
    /**
     * 错误：JWT验证签名失败，可能使用了伪造的JWT
     */
    ERR_JWT_SIGNATURE(60100),
    /**
     * 错误：JWT格式错误
     */
    ERR_JWT_MALFORMED(60200),
    /**
     * 错误：上传的文件为空（没有选择有效的文件）
     */
    ERROR_UPLOAD_EMPTY(90000),
    /**
     * 错误：上传的文件类型有误
     */
    ERROR_UPLOAD_INVALID_TYPE(90100),
    /**
     * 错误：上传的文件超出限制
     */
    ERROR_UPLOAD_EXCEED_MAX_SIZE(90200),
    /**
     * 错误：验证码填写错误
     */
    ERROR_VERIFY(90300),
    /**
     * 错误：验证码过期错误
     */
    ERROR_VERIFY_LONG(90400),
    /**
     * 错误：其它异常
     */
    ERROR_UNKNOWN(99999),

    /**
     * 错误: 库存为空
     */
    ERROR_CART_EMPTY(70000),

    /**
     * 找不到商品或者商品未上架
     */
    ERROR_PRODUCT_NOTUSE(70100),

    /**
     * 库存不足
     */
    ERROR_PRODUCT_INSUFFICIENT(70200),

    /**
     * 没有查到订单
     */
    ERROR_ORDER_EXIST(70300),

    /**
     * 订单不属于该用户
     */
    ERROR_ORDER_MISMATCH(70400),

    /**
     * 订单状态错误
     */
    ERROR_ORDER_STATUS(70500),

    /**
     * 点赞成功
     */
    LIKE_SUCCESS(88888),

    /**
     * 取消点赞
     */
    LIKE_CANCEL(88889),
    /**
     * 点赞成功
     */
    COLLECT_SUCCESS(66666),

    /**
     * 取消点赞
     */
    COLLECT_CANCEL(66667);
    private Integer value;

    ServiceCode(Integer value) {
        this.value = value;
    }

    public Integer getValue() {
        return value;
    }

}
